Using the level editor to view levels which you haven't yet completed may spoil your enjoyment of Monkey Shines.
SECOND WARNING
Creation of Monkey Shines world files from scratch is not an easy process. The level editor doesn't do the whole job. You will also need a graphics package and ResEdit. ResEdit is a development tool produced by Apple Computer. You will find it on their world wide web sites. We will also place a link to it on the Monkey Shines section of the Fantasoft web page <http://www.fantasoft.com/>
THIRD WARNING
The Monkey Shines application in its unregistered state will only recognise the file 'Bonzo World 1'. If this file is modified, you won't be able to play Monkey Shines. Always work with copies of files.
What's New ?
The Monkey Shines Level Editor is no longer a beta product, it is a final release. That's not to say there won't be an upgrade. There willbe. Many people have suggested improvements. Some of these suggestions have made it into this release. Many haven't since we felt it was more important to resolve quality control issues. The editor was far buggier than we had realised. As far as we are aware, all known (reported) bugs are now fixed. If this is not the case, remind us.
We still strongly recommend saving your work and backing-up regularly. Some bugs in the previous version could cause your level files to become corrupted. Again, we believe these bugs are now resolved. As far as we know, the editor has NEVER caused any damage to other files on disks. However, we take no responsibility should it do so. Use at your own risk.
Finally, get those levels designed. The Monkey Shines Level Design Competition is still running. The cash prizes have been claimed, but there are still software prizes to be had. An entry form is included with the editor package.
A detailed version history follows at the end of this document.
What's Coming ?
The next release of the editor (due before the end of May 1997) will feature draggable windows (real windows!), tool palettes (just like in every image editing program) and a generally improved user interface. It will also feature the improvements YOU want, so please let us know. The next version will be released again as a public beta. A final release will follow this once we are satisfied all the bugs have been squashed.
Introduction
This documentation falls into two parts. First we will describe the format used for the world files so that you can create your own files. Then we will explain how to use the editor to create the levels.
1. ANATOMY OF A WORLD FILE
GRAPHICS
These are stored in PICT resources as follows:
PICT 130
PICT resource 130 stores the platforms etc. Just open a world file with ResEdit to see how these should be arranged. The first two rows of platforms block Bonzo's movement. The following three rows are platforms which Bonzo can jump up through and walk through, but still stand on. Play the game a little and you'll soon get the idea. The following six rows of tiles are used as scenery. They don't affect Bonzo in any way, but you can use them to decorate your levels.
The next two rows contains the stationary hazards - bombs, lava, light bulbs, etc. Monkey Shines supports up to 16 of these hazards. Put in whatever graphics you want (2 frames of animation) and assign the deaths to these as described later in the section 'World Resource'.
These are then followed by the stuff Bonzo can collect. There is support for animation on these, even though we decided not to use it in the end. The order of these objects must not be changed, since these are 'hard coded'.
The conveyor belts are next, followed by the dissolving platforms. The green blob to the right of these is needed for the energy bar. The items to the right are used for the interface bar at the top of the screen. These must be present.
The rest of the stuff is animations for collecting objects, exploding bombs, and numbers. It is all pretty self explanatory.
We have used certain guidelines in the creation of level files in order to give the game an overall consistent feel. Naturally we can't force you to do the same, but we strongly recommend it. We would like you to at least retain the collectable objects, animations, energy bar, numbers and some of the hazards.
PICT 200
This is the splash screen which is put up while the world is loading. The colour table for this PICT is stored in 'clut' resource 200.
PICT 1000 - whatever
These are the sprites. Each frame is 40 x 40. As you will probably have noticed by now, everything which can be drawn on screen has a 'mask' below it. This mask should be black where you want the background to show, and pure white (not nearly white - this can cause problems) where you want the sprite to be drawn. Look at our files, and you will get the idea.
Monkey Shines will allow you to use up to 47 sets of frames. If a sprite has frames for both left and right, this will count as two sets. Monkey Shines will not try to load more graphics than it has memory for. If you cannot select a particular sprite, check if you have more than Monkey Shines can load. Increasing the memory allocation to Monkey Shines(or the editor) won't help since these numbers are fixed.
PICT 5000
This is the bar for the top of the screen. You may change the icon for the world as necessary, but you may not make any other changes to this resource.
Colour Tables
These are stored in 'clut' resources. clut 200 is for the splash screen, and clut 1000 is for the game stuff. All the Monkey Shines graphics are optimised to these colour tables.
Music
The music is stored in a 'MADH' resource of ID 1000. These resources are created from MOD files (a popular music file format) by PlayerPro. PlayerPro is a shareware program written by Antione Rosset. You will find it on info-mac mirror sites and many shareware CDs. You will need to have the registered version in order to create your own MADH resources. If you have a MOD file you want to use in your levels, send it to us by email and we will convert it for you. Make sure the author of the MOD doesn't mind though.
Patterns
These are stored in 'ppat' resources. Since ppat 1000 is used by default, your file should always have a pattern of this ID. The actual IDs of the other patterns don't matter. The editor will sort it all out for you.
World Data
There is some information about the world which is stored in a resource of type 'WrLd'. This resource will be created the first time you open the level file in the editor. You can edit the contents of this file using the editor as described below.
The Levels
Now we get down to the crux of it. The levels are stored in resources of type 'Plvl'. The starting level has ID 1000. Adding 1 moves you to the next level to the right. Adding 100 to the ID moves you to the next level down. The 'bonus stage' starts with level 10000. This should allow you plenty of scope to design worlds as big as you could possibly want.
You don't need to know anything about the internal format of the level (or world) resources, since the editor does everything you could possibly want.
2. THE EDITOR
The first thing you will see when you launch the editor is a dialog box prompting you to find a world file to edit. Find the file you want to edit and open it.
Opening world files can take a little while on slower macs. Please be patient.
The Toolbar
Once the file is open, you will see a range of icons along the top of the window. These are (pretty crude) pop-up menus which allow you to select the tiles which you want to place. There is also an eraser tool to delete tiles. Click on a few of the icons to see what they are. This toolbar will be replaced by a proper tool palette in the next release of the editor.
Menus
The file menu has all the things you would expect. The 'New File' option is dimmed, since this feature is not implemented. The only way to create a new world file at the moment is with a resource editor such as ResEdit.
The 'Level' menu allows you to open levels, create new levels, save them or delete them. You can also undo your changes by reverting to the saved version of the open level.
The 'Open Level', 'New Level' and 'Delete Level' options bring up the level selection dialog. You can either type the number of the level you want into the editable text item, or click on the buttons to navigate the world file and put your levels together how you want. This dialog has a preview button to help you find the level you want.
'Object' menu has only one item - assign ID. See 'Object Numbering' below for an explanation.
The 'sprites' menu allows you to place, move and delete Bonzo's natural enemies. This is discussed in detail in the section 'Monsters, etc.'.
The first item 'Sprites Visible' allows you to toggle between sprites on and sprites off. IMPORTANT - the sprites are still there in the level, they are just not drawn in the editing window if the 'Sprites Visible' option is not selected.
The 'Misc' menu allows you to edit a number of things:-
Place Bonzo - if Bonzo comes onto a screen, and dies without landing safely, he will be placed on the previous screen. Use this menu to define where he will be placed. Select the menu, then click on the screen where you would like to place Bonzo. Important, this MUST be done for ALL levels - failing to do so may cause the game to crash.
World Info - see 'World resource' below.
Select Pattern - self explanantory - this item allows you to choose the background pattern used by the level.
Autonumber items - see 'Object Numbering' below.
Object Numbering
In order for the game to keep track of which objects Bonzo has collected, each one has a unique ID number. You can set these with the 'assign ID' item in the 'Object' menu - select this menu item, then click on the object you would like to assign a number to. A dialog will then appear which allows you to set the ID. Valid numbers are in the range 0 - 511.
If you want, you could give your players a choice of two power-ups. Give the two objects the same ID, and when one is collected, the other will disappear. This only works if the two objects are not on the same screen, and is not recommended for use with keys or fruit.
Alternatively you can autonumber the objects for the whole world by selecting 'Autonumber items' from the 'Misc' menu. This is by far the easiest way to get it right.
World Resource
World Info - here you can manually set the number of keys and fruit. If you autonumber items, you should never need to edit the numbers here. We will probably remove these items from the dialog unless anyone objects. You also need to tell the game which levels to find the exits on. You should enter the number of the level which contains each type of door in the appropriate text boxes. This could be automated, and probably will be in the next version. See the following section for an explanation of the rest of this dialog.
Characteristics of stationary hazards
Each hazard (bomb, light bulb, lava, etc.) has its own characteristics. These are
- which sounds does it cause. The sounds are stored in 'snd ' resources in the Monkey Shines application. Subtract 128 from the resource ID to obtain the number to use here.
(note - if this is slightly confusing, the next release of the editor will make this MUCH easier).
- if it explodes - hazards may explode (check the check box). If so, they can play a sound as above.
Note - The levels which ship with Monkey Shines all have these values correctly set. If you create a level file from scratch, the numbers will automatically be set correctly for you. We have included these as options for designers who really want to change things around.
Monsters etc.
When you select 'Edit Sprite' or 'New Sprite' you will get the editing dialog. This is really 2 dialogs in 1, which you can move between using the 'next' and 'prev' buttons.
The first dialog allows you to define a rectangle within which the sprite moves. The valid ranges are
top - 80 to 440
bottom - 120 to 480
left - 0 to 600
right - 40 to 640
The speed values define how fast the sprite moves in each direction. The starting position, funnily enough, defines where the sprite starts. This doesn't have to be within the rectangle, and you will be able to get some pretty unusual movement patterns by playing with these values.
The second dialog allows you to change how the sprite looks (use the 'next' and 'prev' buttons at the top right of this dialog) and how it is animated. The best way to discover what these do is to play with the settings.
What you will notice is that each sprite can be defined as a door or energy drainer. If you define a sprite as a door, and mark the current level as the level for the 'Exit door' in the world info, this sprite will not appear until you have all the red keys, and then it will function as if it were a door. It doesn't have to look like a door, but unless you want to confuse people horribly, we recommend that you stick with the correct graphics. Draining energy is not restricted to the bee, but we recommend that you don't use it for other sprites since players will spend their time avoiding the sprite and get bored or frustrated.
And yes, the door can move if you really want it to.
Important Limitations
1. You may not have more than 25 collectable items per screen.
2. You may not have more than 10 monsters (these also include doors) per screen.
Version History
1.1.2 - Changes
-----------
Major overhaul of code. Level drawing routine greatly simplified.
Sprites visible menu option FINALLY implemented.
1.1.2 - Bugs Fixed
-------------
Potential crash with drawing/deleting conveyor belts fixed.
File properly closed. This fixes one possible cause of world file corruption.
Level count properly updated when new level created. This would have caused an incorrect count and numbering of objects.
Puts up the 'save first' dialog before the dialog to open/create a new level. Not perfect, since if you hit cancel, there will be no level open. The 'Open' dialog needs to access the level resources, and can cause major problems with the open level. Could work around it, but not much point.
When selecting 'new level', the okay button was initially enabled, even if there is already a level with that resource ID. Although there was an additional check to prevent overwriting levels, this was not good. Fixed.
Some people had reported the tool bar not being drawn. Hopefully this is now fixed.
Sprites are loaded before the platforms are drawn, since some numbers in the array are modified for keys/fruit. Not really a bug, but should be marginally safer.
1.1.3 - Changes
-----------
I think I fixed a couple of bugs, but I honestly can't remember. It seems so long ago now. I seem to remember that the problem with the toolbar wasn't fixed, but it is now. For information, this only affected people who had their monitors set to something other than 256 colours.
The Last Word
If there is ever a Monkey Shines 2, it will use a bigger more flexible sprite engine. We have learned from writing Monkey Shines, and we have lots of ideas (although we could always use more). It may sound like a cliche, but the best way to convince us to produce a Monkey Shines 2 is to register Monkey Shines. We will be far more inclined to work on a sequel if we are making a little money. Sorry if that sentiment offends you, but we have day jobs which take a lot of our time. Monkey Shines has taken a huge amount of time and effort to produce.
How to contact us
By mail:
Fantasoft, LLC
P.O. Box 14261
Madison
WI 53714-0261
U.S.A.
By phone/fax: (608) 222 8468
By email: fantasoft1@aol.com
Visit our world wide web pages: <http://www.fantasoft.com/>